ADC/DAC 频谱仿真(PSD)

目标

Transient +(正确采样)+ FFT/DFT 得到可用于 SNR / ENOB / THD / SFDR / IMD 的稳定、可复现频谱。

0. 必备概念

Δf=fsN,f[0,;fs/2]

1. 采样方案

1.1 用“输出采样点”而不是“仿真内部步长”做 FFT

结论:FFT 采样频率 = 1/strobeperiod(或等价 Outstep),且必须稳定等间隔。


1.2 相干采样

相干条件:记录窗口里有 整数个输入周期。常用写法:

fin=MNfs

其中 N 为 FFT 点数(通常 2 的幂),M 为记录内的周期数(整数)。(瑞萨电子)

工程选型规则:

快速配频步骤:

  1. 定 N(例如 4096/8192/65536)
  2. 根据目标频段选一个候选 Mfin,targetN/fs
  3. 把 M 调到附近的 奇数/素数
  4. 最终 fin=Mfs/N(输入源也要用这个值)

若能做到相干采样:优先矩形窗(或不加窗),谱最“干净”。(模拟器件)


1.3 加窗采样

做不到精确相干(如 PLL/噪声/异步时钟等)就加窗。(模拟器件)

窗函数速选:

必须记住的两件事:


1.4 时钟抖动

采样/重建时钟抖动对 SNR 的上限影响(常用近似):

SNRjitter20log10(12πfinσt)

频率越高,SNR 上限越差。(模拟器件)


2. Virtuoso/Spectre 仿真设置

2.1 Transient(统一 ADC/DAC 的通用设置)

可以在Transient OptionsOutputStrobe中设置

新版本支持TranTransient NoiseFourier Analysis Settings中快捷设置

建议用 strobe 采样点做 FFT:

求解精度:


3. FFT/DFT 操作流程

3.1 数据准备

  1. 只取稳态窗口:用 skipstart/skipstop 或在波形上裁剪
  2. 去直流(可选):x[n]x[n]mean(x[n])
  3. 若非相干:选 Hann/FlatTop 等窗,并记得做窗增益/ENBW修正(圣荷西州立大学)

3.2 FFT 结果如何“正确读功率”


4. 指标提取

建议用“功率口径”(10log)统一计算;幅度口径(20log)仅用于 dBc 标注。

SNR=10log10(PsigPnoise) ENOB=SNR1.766.02 THD=10log10(h=2KPhPsig) SFDR=10log10(PsigPspur,max);[dBc]

IEEE 1241 体系下的“相干采样/抑制泄漏”就是为了让这些功率归属更可靠。(课堂)


5. DAC 专属要点

5.1 ZOH(零阶保持)导致 sinc 衰减

传统 DAC(ZOH)频响幅度呈 sinc 包络,在 Nyquist 处衰减约 -3.92 dB。(维基百科)

用途:

5.2 DAC 的“采样点”选取


6. 常见问题快速定位


7. Checklist